Laravel 5の環境変数の設定
環境変数の設定
環境変数は、アプリケーションのrootに.envを設定することで設定できる
アプリケーションの秘匿情報を環境変数を経由して注入したいとき
デフォルトの設定はconfig/*.phpに決められている
キーが同じだと、環境変数で指定したもの(=.envに書いたもの)が上書きされる
実際にロードされる流れ
環境変数のロード
bootstrapをする際に、環境変数を.envからロードする なお、環境変数を管理するために利用されているライブラリDotenvは、デフォルトではロード時にすでにある環境変数を上書きしない
基本的にはconfigで設定すべきだが、どうしても無理やり環境変数を書き換えたい場合、単純にロード前にputenv()で設定しておけばそれが利用される
設定のロード
同様にIlluminate/Foundation/Bootstrap/LoadConfigurationのboot時に、config/*.phpがロードされる $APP_NAME/config/app.phpなどが読まれる
この際にenv()によって、環境変数から情報が取得される
.envで環境変数APP_ENVを指定して、かつ.env.APP_ENVを指定すると.envの代わりに.env.APP_ENVがロードされる ドキュメントでいうとここ
You may also create a .env.testing file. This file will override the .env file when running PHPUnit tests or executing Artisan commands with the --env=testing option.
testing環境に限らない
$app->environmentPath()は、特に指定していない場合base pathであるproject rootになる
loadEnvironmentFrom()が呼ばれて、$app->environmentFileがデフォルトの.envから.env.APP_ENVに差し替わるので、最終的に.env.APP_ENVがロードされる